From: Andrew Cooper Date: Sat, 11 Nov 2017 19:08:37 +0000 (+0000) Subject: x86/link: Don't merge .init.text and .init.data X-Git-Tag: archive/raspbian/4.11.1-1+rpi1~1^2~66^2~487 X-Git-Url: https://dgit.raspbian.org/%22http:/www.example.com/cgi/%22https://%22%22/%22http:/www.example.com/cgi/%22https:/%22%22?a=commitdiff_plain;h=2d9078954279e943d976ca2154c16b986dd25799;p=xen.git x86/link: Don't merge .init.text and .init.data c/s 1308f0170c merged .init.text and .init.data, because EFI might properly write-protect r/o sections. However, that change makes xen-syms unusable for disassembly analysis. In particular, searching for indirect branches as part of the SP2/Spectre mitigation series. As the merging isn't necessary for ELF targets at all, make it conditional on the EFI side of the build. Signed-off-by: Andrew Cooper Acked-by: Jan Beulich --- diff --git a/xen/arch/x86/xen.lds.S b/xen/arch/x86/xen.lds.S index 25c6cbcedf..e9f2ecd9fb 100644 --- a/xen/arch/x86/xen.lds.S +++ b/xen/arch/x86/xen.lds.S @@ -172,7 +172,11 @@ SECTIONS __2M_init_start = .; /* Start of 2M superpages, mapped RWX (boot only). */ . = ALIGN(PAGE_SIZE); /* Init code and data */ __init_begin = .; +#ifdef EFI /* EFI wants to merge all of .init.* ELF doesn't. */ DECL_SECTION(.init) { +#else + DECL_SECTION(.init.text) { +#endif _sinittext = .; *(.init.text) /* @@ -183,7 +187,12 @@ SECTIONS *(.altinstr_replacement) _einittext = .; +#ifdef EFI /* EFI wants to merge all of .init.* ELF doesn't. */ . = ALIGN(SMP_CACHE_BYTES); +#else + } :text + DECL_SECTION(.init.data) { +#endif *(.init.rodata) *(.init.rodata.rel)